﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using System.Data.SqlClient;

namespace QuangNgai.nhaplieu.vanban
{
    public partial class frmVanBan : DevExpress.XtraEditors.XtraForm
    {
        public frmVanBan()
        {
            InitializeComponent();
        }

        private void frmVanBan_Load(object sender, EventArgs e)
        {
            this.hsbooksTableAdapter.Fill(this.lTQNDataSet.Hsbooks);
            this.vbbooksTableAdapter.Fill(this.lTQNDataSet.Vbbooks);

        }

        private void gvVanBan_RowUpdated(object sender, DevExpress.XtraGrid.Views.Base.RowObjectEventArgs e)
        {
            vbbooksBindingSource.EndEdit();
            vbbooksTableAdapter.Update(lTQNDataSet.Vbbooks);
        }

        private void gvVanBan_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                gvVanBan_RowUpdated(sender, null);
            }
        }

        private void gcVanBan_EmbeddedNavigator_ButtonClick(object sender, NavigatorButtonClickEventArgs e)
        {
            if (e.Button.ButtonType == NavigatorButtonType.Remove)
            {
                e.Handled = true; // by-pass default handle
                if (MessageBox.Show("Bạn có muốn xóa văn bản hiện tại?", "Xác nhận xóa",
                    MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==
                  DialogResult.Yes)
                {
                    try
                    {
                        vbbooksBindingSource.RemoveCurrent();
                        vbbooksTableAdapter.Update(lTQNDataSet.Vbbooks);
                    }
                    catch (SqlException sqlE)
                    {
                        if (sqlE.Message.Contains("The DELETE statement conflicted with the REFERENCE constraint"))
                        {
                            MessageBox.Show("Loại văn bản này đã được đưa vào sử dụng, không thể xóa", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            vbbooksTableAdapter.Fill(this.lTQNDataSet.Vbbooks);
                        }
                        else
                        {
                            throw;
                        }
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }
                }
            }
        }

        private void gvVanBan_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)
        {
            Console.WriteLine(e.Value);
            if (gvVanBan.FocusedColumn.Name == "colBookname")
            {
                if (Convert.ToString(e.Value).Equals("") || Convert.ToString(e.Value) == null) e.Valid = false;
            }
        }

        private void gvVanBan_InvalidValueException(object sender, DevExpress.XtraEditors.Controls.InvalidValueExceptionEventArgs e)
        {
            e.ExceptionMode = ExceptionMode.DisplayError;
            e.WindowCaption = "Lỗi nhập liệu";
            e.ErrorText = "Tên văn bản hoặc tài liệu tương ứng không được trống";
        }
    }
}